package arrays

// Map 对数组中的每个元素应用函数，并返回一个新数组
func Map[T, R any](array []T, fn func(T, int, []T) R) []R {
	result := make([]R, 0, len(array))
	for i, v := range array {
		result = append(result, fn(v, i, array))
	}
	return result
}
